#pragma once

class IWriter{
public:
    IWriter() = default;
    IWriter(const IWriter&) = default;
    IWriter& operator=(const IWriter&) = default;
    IWriter(const IWriter&&) = delete;
    IWriter& operator=(const IWriter&&) = delete;
    virtual int WriteAtBegin(void* data,int length) = 0;
    virtual int WriteAt(int pos,void* data,int length) = 0;
    virtual int WriteEnd(void* data,int length) = 0;
    virtual ~IWriter() {};

};